package cn.tedu.test.charging;

import cn.tedu.test.charging.emqx.EmqxDemo;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(classes = EmqxDemo.class)
public class EmqxTestRun {
    @Autowired
    private MqttClient mqttClient;
    //使用这个客户端 向emqx 发送消息,需要指定主题
    //主题 是在中间件中 保存消息的组件,不同的主题 消息格式 消息业务内容 完全不相同的
    //所以如果在rabbitmq中接触过交换机和队列,和emqx不一样,只要你的消息有区别,就应该换一个主题
    //主题的命名 规则: /A/B/C
    @Test
    public void testSend(){
        String testTopic="/emqx/test/topic";
        //准备一个消息体
        String msg="my first message";
        //调用发送api
        /**
         * topic: 发送消息目的地 emqx中的某个主题名称 emqx如果有就会使用 如果没有就会创建
         * msg: byte[] 发送消息的消息体
         * qos: 服务质量 三个级别 表示的含义是,我们在网络通信时,可以根据网络质量选择通信级别
         */
        try{
            mqttClient.publish(testTopic,msg.getBytes(),0,false);
        }catch (Exception e){

        }
    }


}
